import request from "../../request";

/**
 * 创建储值卡请求参数接口
 */
export interface ICreateStoredValueCardParams {
    /** 客户ID */
    customerId: string;
    /** 卡号 */
    cardNumber: string;
    /** 卡片名称 */
    cardName: string;
    /** 充值金额 */
    rechargeAmount: number;
    /** 赠送金额（可选） */
    giftAmount?: number;
    /** 赠送积分（可选） */
    giftPoints?: number;
    /** 有效期开始时间（可选，格式：YYYY-MM-DD） */
    validFrom?: string;
    /** 有效期结束时间（可选，格式：YYYY-MM-DD） */
    validTo?: string;
    /** 备注信息（可选） */
    remark?: string;
}

/**
 * 储值卡信息接口
 */
export interface IStoredValueCard {
    id: string;
    customerId: string;
    cardNumber: string;
    cardName: string;
    rechargeAmount: number;
    giftAmount: number;
    giftPoints: number;
    currentBalance: number;
    validFrom?: Date;
    validTo?: Date;
    remark?: string;
    createdAt: Date;
    updatedAt: Date;
}

/**
 * 积分记录信息接口
 */
export interface ICustomerPoints {
    id: string;
    customerId: string;
    batchNumber: string;
    pointsAmount: number;
    remainingPoints: number;
    sourceType: string;
    sourceDescription?: string;
    validFrom?: Date;
    validTo?: Date;
    status: string;
    remark?: string;
    createdAt: Date;
    updatedAt: Date;
}

/**
 * 创建储值卡响应数据接口
 */
export interface ICreateStoredValueCardResponse {
    success: boolean;
    message: string;
    data: {
        /** 创建的储值卡信息 */
        card: IStoredValueCard;
        /** 创建的积分记录（如果有赠送积分） */
        points?: ICustomerPoints;
    };
}

/**
 * 创建客户储值卡
 * @description 为指定客户创建新的储值卡，如果有赠送积分会同时创建积分记录
 */
export async function post(params: ICreateStoredValueCardParams) {
    const url = '/customers/stored-value-card/create';
    const response = await request.post<ICreateStoredValueCardResponse>(url, params);
    return response.data;
} 